package org.edu.modules.research.rproject.entity;

import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import org.edu.common.base.BaseEntity;
import java.math.BigDecimal;
import org.hibernate.validator.constraints.Length;

import java.io.Serializable;
import java.util.Date;

/**
 * entity-科研项目信息表
 */
@TableName
@Data
@Accessors(chain = true)
@EqualsAndHashCode(callSuper = false)
@ApiModel(value="科研项目信息表对象", description="ve_jky_project")
public class VeJkyProject extends BaseEntity implements Serializable {

    private static final long serialVersionUID = 1L;

    @TableField
    @ApiModelProperty(value = "项目名称")
    @Length(max = 255)
    private String name;

    @TableField
    @ApiModelProperty(value = "立项组织")
    @Length(max = 50)
    private String createOragn;

    @TableField
    @ApiModelProperty(value = "项目编号")
    @Length(max = 50)
    private String serial;

    @TableField
    @ApiModelProperty(value = "项目合同编号")
    @Length(max = 50)
    private String termNum;

    @TableField
    @ApiModelProperty(value = "项目来源")
    @Length(max = 30)
    private String source;

    @TableField
    @ApiModelProperty(value = "项目经费")
    private BigDecimal totalCost;

    @TableField
    @ApiModelProperty(value = "项目分类id")
    private Integer cateId;

    @TableField
    @ApiModelProperty(value = "级别id")
    private Integer levelId;

    @TableField
    @ApiModelProperty(value = "项目进度")
    private Integer progress;

    @TableField
    @ApiModelProperty(value = "附件id")
    private Integer fileId;

    @TableField
    @ApiModelProperty(value = "添加时间")
    @JsonFormat(timezone="GMT+8",locale="zh",  pattern="yyyy-MM-dd hh:mm:ss")
    private Date createTime;

    @TableField
    @ApiModelProperty(value = "责任人/负责人")
    private Integer chargeUid;

    @TableField
    @ApiModelProperty(value = "项目开始时间")
    @JsonFormat(timezone="GMT+8",locale="zh",  pattern="yyyy-MM-dd")
    private Date startTime;

    @TableField
    @ApiModelProperty(value = "项目结束时间")
    @JsonFormat(timezone="GMT+8",locale="zh",  pattern="yyyy-MM-dd")
    private Date endTime;

    @TableField
    @ApiModelProperty(value = "项目验收时间")
    @JsonFormat(timezone="GMT+8",locale="zh",  pattern="yyyy-MM-dd")
    private Date checkTime;

    @TableField
    @ApiModelProperty(value = "审批状态")
    private Integer checkStatus;

    @TableField
    @ApiModelProperty(value = "项目审批人")
    private String markUid;

    @TableField
    @ApiModelProperty(value = "项目审批人")
    private String mark;

    @TableField
    @ApiModelProperty(value = "项目简介")
    @Length(max = 65535)
    private String remark;

    @TableField
    @ApiModelProperty(value = "审核不通过原因")
    private String checkTxt;
}
